package com.rover022.webgame.model {
	import it.gotoandplay.smartfoxserver.SFSEvent;
	import it.gotoandplay.smartfoxserver.SmartFoxClient;

	import org.puremvc.as3.multicore.patterns.proxy.Proxy;

	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;

	/**
	 * @author chenbin01
	 */
	public class SFSProxy extends Proxy {
		public var SFS_client : SmartFoxClient;

		public function SFSProxy(proxyName : String = null, data : Object = null) {
			super(proxyName, data);
		}

		override public function onRegister() : void {
			 
			SFS_client = new SmartFoxClient();
			SFS_client.addEventListener(SFSEvent.onConnection, onConnection_listener);
			SFS_client.addEventListener(SFSEvent.onConnectionLost, onConnectionLost_listener);
			SFS_client.addEventListener(SFSEvent.onLogin, onLogin_listener);
			SFS_client.addEventListener(SFSEvent.onLogout, onLogout_listener);
			SFS_client.addEventListener(SFSEvent.onJoinRoom, onJoinRoom_listener);
			SFS_client.addEventListener(SFSEvent.onJoinRoomError, onJoinRoomError_listener);
			
			SFS_client.addEventListener(SFSEvent.onUserCountChange, onUserCountChange_listener);
			SFS_client.addEventListener(SFSEvent.onUserEnterRoom, onUserEnterRoom_listener);
			SFS_client.addEventListener(SFSEvent.onUserLeaveRoom, onUserLeaveRoom_listener);
			SFS_client.addEventListener(SFSEvent.onUserVariablesUpdate, onUserVariablesUpdate_listener);
			
			SFS_client.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
			SFS_client.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
			SFS_client.loadConfig();
			
			 
		}

		private function onIOError(event : IOErrorEvent) : void {
			trace("IOErrorEvent");
		}

		private function onSecurityError(event : SecurityErrorEvent) : void {
			trace("SecurityErrorEvent");
		}

		private function onUserVariablesUpdate_listener(event : SFSEvent) : void {
			trace("onUserVariablesUpdate_listener");
		}

		private function onUserLeaveRoom_listener(event : SFSEvent) : void {
			trace("onUserLeaveRoom_listener");
		}

		private function onUserEnterRoom_listener(event : SFSEvent) : void {
			trace("onUserEnterRoom_listener");
		}

		private function onUserCountChange_listener(event : SFSEvent) : void {
			trace("onUserCountChange_listener");
		}

		private function onJoinRoomError_listener(event : SFSEvent) : void {
			trace("onJoinRoomError_listener");
		}

		private function onJoinRoom_listener(event : SFSEvent) : void {
			trace("onJoinRoom_listener");
		}

		private function onLogout_listener(event : SFSEvent) : void {
			trace("onLogout_listener");
		}

		private function onLogin_listener(event : SFSEvent) : void {
			trace("onLogin_listener");
		}

		private function onConnectionLost_listener(event : SFSEvent) : void {
			trace("onConnectionLost_listener");
		}

		
		private function onConnection_listener(event : SFSEvent) : void {
			trace("onConnection_listener");
		}
	}
}
